package gouciparser

import (
	"fmt"
	"strconv"
	"strings"

	"github.com/360EntSecGroup-Skylar/excelize"
)

// excel sheet column 常亮定义，依据id好获取别名
var colName = [80]string{
	// 1   2     3    4    5    6    7    8    9    10
	"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
	"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
	"U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD",
	"AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM",
	"AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV",
	"AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE",
	"BF", "BG", "BH", "BI", "BJ", "BK", "BL", "BM", "BN",
	"BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW",
}

// 获取指定sheet的列、行单元格内容，ok为false值位空
func GetCellValStr(f *excelize.File, sheetname string, col int, row int) (val string, ok bool) {
	ok = false
	val = strings.TrimSpace(f.GetCellValue(sheetname, fmt.Sprintf("%s%d", colName[col], row)))
	if len(val) > 0 {
		ok = true
	}
	return
}

// 获取指定sheet的列、行单元格数值，ok为false，不是有效数字
func GetCellValInt(f *excelize.File, sheetname string, col int, row int) (val int, isnull bool, ok bool) {
	var err error
	s := strings.TrimSpace(f.GetCellValue(sheetname, fmt.Sprintf("%s%d", colName[col], row)))
	if len(s) == 0 {
		return 0, true, false
	}
	val, err = strconv.Atoi(s)
	if err == nil {
		ok = true
		return
	}

	return 0, false, false
}
